# 封装一个工具类
import pymysql

# 数据库操作工具类
class DBHelper:

    def __init__(self,db):  # db设置操作的库属性
        self.db =db

    # 获取连接的函数 利用游标获取
    def getConn(self):
        conn = pymysql.connections.Connection(host="127.0.0.1",port=3306,user="root",passwd="root",db="shop",charset="utf8")
        return conn

    # 修改数据函数
    def update(self,sql,data): # 修改的sql语句，data是sql中需要进行替换的参数元组
        try:
            # 获取连接
            conn = self.getConn()
            # 通过连接获取游标对象
            cursor = conn.cursor()
            # 执行sql
            n = cursor.execute(sql,data)
            # 提交事务
            conn.commit()
            return n
        except Exception as e:
            print(e,"出现异常，请检查")
        finally:
            # 释放资源
            cursor.close()
            conn.close()

    # 查询函数
    # 查询一个
    def queryOne(self, sql, data):
        try:
            # 获取连接
            conn = self.getConn()
            # 通过连接获取游标对象
            cursor = conn.cursor()
            # 执行sql语句，以及传入的数据
            cursor.execute(sql, data)
            dataResult = cursor.fetchone()
        except Exception as e:
            print(e, "出现异常，请检查")
        finally:
            # 释放资源
            cursor.close()
            conn.close()
        return dataResult

    # 查询多个
    def queryAll(self,sql,data):
        try:
            # 获取连接
            conn = self.getConn()
            # 通过连接获取游标对象
            cursor = conn.cursor()
            # 执行sql语句，以及传入的数据
            cursor.execute(sql,data)
            dataResult = cursor.fetchall()
        except Exception as e:
            print(e,"出现异常，请检查")
        finally:
            # 释放资源
            cursor.close()
            conn.close()
        return dataResult
